from joblib import load
import numpy as np

#加载模型和预处理对象
knn = load('knn_classifier.joblib')
scaler = load('feature_scaler.joblib')
le = load('label_encoder.joblib')

#接收新数据
new_data = {
    'eps':'-0.8309',
    'total_revenue_ps': '11.9673',
    'undist_profit_ps': '7.0209',
    'gross_margin': '11586700000',
    'fcff': '-12879100000', 
    'fcfe': '-5263460000',
    'tangible_asset': '179873000000', 
    'bps': '20.2568', 
    'grossprofit_margin': '8.1152', 
    'npta': '-0.5821', 
    'roic': '-0.8522',
}

#转换为数组并保存特征顺序
feature_order = [
    'eps', 'total_revenue_ps', 'undist_profit_ps', 'gross_margin',
    'fcff', 'fcfe','tangible_asset', 'bps', 'grossprofit_margin', 'npta', 'roic'
]

new_value = np.array([[new_data[col] for col in feature_order]])

#标准化新数据
new_scaled = scaler.transform(new_value)

#预测分类
predicted_label = knn.predict(new_scaled)
predicted_category = le.inverse_transform(predicted_label)
